package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.SysTreeDictData;
import org.apache.ibatis.annotations.Param;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;

/**
 * 字典数据Mapper接口
 * 
 * @author genghz
 * @date 2021-11-17
 */
public interface SysTreeDictDataMapper 
{
    /**
     * 查询字典数据
     * 
     * @param dataId 字典数据主键
     * @return 字典数据
     */
    @Cacheable(value="sys_tree_dict_data", key="#p0", unless = "#result == null")
    public SysTreeDictData selectSysTreeDictDataByDataId(Long dataId);

    /**
     * 查询字典数据列表
     * 
     * @param sysTreeDictData 字典数据
     * @return 字典数据集合
     */
    public List<SysTreeDictData> selectSysTreeDictDataList(SysTreeDictData sysTreeDictData);

    /**
     * 查询字典数据列表
     *
     * @param parentId 父节点ID
     * @return 字典数据集合
     */
    public List<SysTreeDictData> selectListByParentId(Long parentId);

    /**
     * 新增字典数据
     * 
     * @param sysTreeDictData 字典数据
     * @return 结果
     */
    @CacheEvict(value="sys_tree_dict_data", allEntries = true)
    public int insertSysTreeDictData(SysTreeDictData sysTreeDictData);

    /**
     * 修改字典数据
     * 
     * @param sysTreeDictData 字典数据
     * @return 结果
     */
    @CacheEvict(value="sys_tree_dict_data", allEntries = true)
    public int updateSysTreeDictData(SysTreeDictData sysTreeDictData);

    /**
     * 删除字典数据
     * 
     * @param dataId 字典数据主键
     * @return 结果
     */
    @CacheEvict(value="sys_tree_dict_data", allEntries = true)
    public int deleteSysTreeDictDataByDataId(Long dataId);

    /**
     * 批量删除字典数据
     * 
     * @param dataIds 需要删除的数据主键集合
     * @return 结果
     */
    @CacheEvict(value="sys_tree_dict_data", allEntries = true)
    public int deleteSysTreeDictDataByDataIds(Long[] dataIds);

    public SysTreeDictData selectDataByCode(@Param("dictId") Long dictId, @Param("dictCode") String dictCode) ;

    public List<SysTreeDictData> selectSysTreeDictDataListByDictType(String dictType);
}
